﻿

CREATE TABLE [dbo].[T_Product](
	[F_AutoId] [int] IDENTITY(1,1) NOT NULL,--辅助自动ID(预留)
	[F_ProductId] Int Default(0) NOT NULL,--产品ID	--主键
	[F_ClsID] Int Default(0) NOT NULL,--关联外键(分类ID)
	CONSTRAINT [PK_T_Product] PRIMARY KEY CLUSTERED
(
	[F_ProductId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


/*

--对应关系(注：指A表中的记录数与B表中的记录数对比关系)
--T_Class <-> T_ClassAppend 是 1:1 (前提是如果该分类设置了扩展属性定义，如果这个类没有扩展属性定义，则可能是1:0)
--T_Class <-> T_Product 是 1:1
--T_Product <-> T_Product_XX 是 1:1 （前提是该产品有扩展属性），异常情况下也有可能会出现1:N(比如产品后来在编辑时，换了分类，但是旧分类的T_Product_XX中的记录未删除)
--T_ClassAppend <-> T_Product_X 是1:1


declare @ClsId [uniqueidentifier]
declare @ProductId [uniqueidentifier]

select
p.*,
c.[F_ClassName] , c.[F_ShortName],
@ClsId=p.ClsId
from
T_Product p left join [T_Class] c on p.[F_ClsId]=c.[F_ClsId]
where p.F_ProductId=@ProductId;


select 
app.[F_DisplayName] ,app.[F_FieldName] ,app.[F_ValueType] ,app.[F_ValueLength] ,app.[F_InputType] ,app.[F_DefaultValue],app.[F_IsRequired],
aVal.[F_ClsAppId],aVal.[F_Value]
from [T_ClassAppend] app left join [T_ClassAppendValue] aVal on app.[F_ProductId]=aVal.[F_ProductId]
where app.F_ProductId=@ProductId and ClsId=@ClsId and app.[F_isShow]=1 snd 
order by app.[F_Orders] desc;

*/